/*
 *	ApOS (Another Project software for s3c2410)
 *	
 *	This program is free software; you can redistribute it and/or modify
 *	it under the terms of the GNU General Public License version 2 as
 *	published by the Free Software Foundation.
 *			
 *
 */
#ifndef _ELF_LOADER_H

#define NOT_ELF_FILE(elf32hdr) ((elf32hdr)->e_ident[EI_MAG0]!=0x7f|| \
	(elf32hdr)->e_ident[EI_MAG1]!='E'|| \
	(elf32hdr)->e_ident[EI_MAG2]!='L'|| \
	(elf32hdr)->e_ident[EI_MAG3]!='F')
	
#define NOT_EXEC_FILE(elf32hdr) ((elf32hdr)->e_type!=ET_EXEC)

#define NOT_ARM_PLATFORM(elf32hdr) ((elf32hdr)->e_machine!=EM_ARM)

#define VERSION_ERROR(elf32hdr) ((elf32hdr)->e_version!=EV_CURRENT)

#define NOT_32BIT(elf32hdr) ((elf32hdr)->e_ident[EI_CLASS]!=ELFCLASS32)

#define NOT_LITTLE_ENDIAN(elf32hdr) ((elf32hdr)->e_ident[EI_DATA]!=ELFDATA2LSB)


struct elf_loader_obj
{
	unsigned int*	elf_file_addr_base;
	Elf32_Ehdr*	elf32_header;
	Elf32_Shdr*	section_header_table;
	Elf32_Phdr*	programe_header_table;
	
	Elf32_Shdr*	current_section_header;
	Elf32_Phdr*	current_programe_header;
	unsigned int*	current_section;
	unsigned int*	string_section;
};
#endif

